OpenVPN Access ServerでGoogle Authenticatorを使って多要素認証(MFA認証)でSSL VPN接続してみた
こんにちわ。いつか複葉機でアウドムラに着艦してみたいガノタ市田です。
今回は、以前ご紹介したOpenVPN Access Server のMFA認証によるVPN接続をご紹介します。
概要
OpenVPN Access Server(以後、OpenVPN-ASと表記)は、デフォルトでGoogle Authenticator による2段階認証を利用することができます。
今回は、その2段階認証の導入と実際の接続確認までを行ってみたいと思います。
手順
- OpenVPN-ASの管理画面で設定を有効化
- スマホなどに対応アプリケーションのインストール
- Google Authenticator設定
- Mac(OSX)で接続確認
- Windowsで接続確認
- iPhoneで接続確認
それでは早速見ていきたいと思います。
OpenVPN-ASの管理画面で設定を有効化
OpenVPN-ASのAdmin用管理画面にログインして「Client Settings」 をクリックして設定画面を開きます。
「Configure Google Authenticator support」の「Require that users ・・・」 となっている箇所のチェックを入れます。
チェックを入れたら画面下部の「Save Settings」 をクリックします。
次の画面で「Update Running Server」 をクリックして設定を反映します。
OpenVPN-AS側の設定は以上になります。簡単ですね。
スマホに2段階認証アプリのインストール
今回は、iPhoneに対応アプリケーションをインストールしました。
Google Authenticator - App Store
普通のiphoneアプリのインストールと変わりませんのでインストール方法については、割愛します。
Google Authenticator設定
次は2段階認証の認証情報を設定していきます。
まずは、OpenVPN-ASのクライアント用の管理画面にログインします。
先程と同様、ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443
です。
ユーザ名とパスワードを入力した後、プルダウンから「Login」 を選択してログインします。
するとQRコードが表示されているので、iPhoneでGoogle Authenticatorのアプリを起動してQRコードを読み取ります。
アプリを起動したら「+」 ボタンをクリックします。
次の画面で「バーコードをスキャン」 をクリックします。
QRコードをアプリで読み取れたら下記のようにOpenVPN-ASサーバの情報が登録されます。
これで登録が完了しました。
登録が完了したら先程のQRコードの一番下にある「I scanned the QR code」 をクリックしておきます。ブラウザ側の操作は以上になります。
MacでVPN接続してみる
OpenVPNクライアント(OpenVPN Connect)のインストール
次に、Mac OS XにVPNクライアントツールのインストールをします。
Google Authenticatorの2段階認証を簡単に利用するため、今回は「OpenVPN Connect」 というクライアントアプリをインストールして接続してみます。
まずは、クライアント用の管理画面にログインします。
以前のエントリの内容でOpenVPN-ASを作成している場合は、ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443
です。
ユーザ名とパスワードを入力した後、プルダウンから「Login」 を選択してログインします。
ログインしたら、Mac OS X用のクライアントアプリをダウンロードします。
dmgファイルをダウンロードしてインストールしていきます。
ダブルクリックすると下記のようなファイルが現れます。
このファイルを下記のように開いてインストールを行います。
次のような警告が出ますが、そのまま「開く」 をクリックします。
インストーラが起動するので「続ける」 をクリックします。
「Continue」 をクリックします。
「Agree」 をクリックします。
「インストール」 をクリックします。
待ちます。
インストールが完了したらウィンドウを閉じます。
これで準備が整いました。
MacでVPN接続してみる
それでは、アプリを起動してバーからConnect を選択して接続を行います。
接続するサーバとしてポート番号まで含めて[OpenVPN-ASのElastic IP]:10443
の形で指定します。
2度ほど確認のダイアログが出ますが、全てYes
をクリックして進めてください。
接続するユーザ名とパスワードを入力します。
次は2段階認証の肝です。
スマホのGoogle Authenticatorで表示されている数字を入力します。
接続できたらバーのアイコンが緑色になります。
この状態でブラウザでプラベート環境のサーバのWebページにアクセスすると、プライベートIPでページを表示できました。
WindowsでVPN接続してみる
WindowsがクライアントでもMacの場合と同様になります。
試しにWindows8.1で試してみます。
OpenVPNクライアント(OpenVPN Connect)のインストール
Macの時と同様にクライアント用の管理画面にアクセスします。
ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443
ですね。
同じユーザcm-user1
を使っていますが、既に2段階認証が有効になっているので認証コードの入力を求められます。
ログインできたらWindows用のインストーラをダウンロードします。
インストーラをダブルクリック
「はい」をクリック
待ちます。
WindowsでVPN接続
インストールできたらデスクトップ上のショートカットから起動します。
起動したらタスクバーからconnect をクリックします。
起動したら次のように[OpenVPN-ASのElastic IP]:ポート番号
という形で接続先を指定します。
スマホのGoogle Authenticatorで表示されている数字を入力します。
接続ができたらアイコンが緑色になります。
この状態でプライベートIPでWebサーバにアクセスしてページが見えればOKです。
iPhoneでVPN接続してみる
最後はiPhoneで接続してみたいと思います。ちなみにiOS10.0.1です。
OpenVPNクライアント(OpenVPN Connect)のインストール
ブラウザでOpenVPN-ASのクライアント用画面にログインします。
ログインURLはhttps://[OpenVPN-ASのElasticIP]:10443
でした。
次にGoogle Authenticatorの認証コードを入力します。
iOS用のリンクをクリックします。
App Storeに飛ぶので、そこからアプリをインストールします。
iPhoneでVPN接続
インストールが完了したらもう一度、OpenVPN-ASの画面にアクセスします。
そこから接続する端末用の.ovpn
ファイルをダウンロードします。
OpenVPNで開く
をクリックします。
次の画面で緑色の+ボタン をクリックします。
パスワードとGoogle Authenticatorの認証コードを入力して、コネクションをOnにします。
Yes
をクリックします。
下記の表示になれば接続完了です。
そのままプライベートIPで下記のようなページが表示されればOKです。
最後に
Android端末だけ手元になかったので未検証ですが、よく使われるOS、デバイスからの接続ができることを確認できました。
2段階認証でも特に問題なく、設定も簡単なので是非ご活用ください。
以上になります。